package com.ruoyi.project.domain.entity;

import java.util.Date;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 客户基本信息表(Customer)表实体类
 *
 * @author makejava
 * @since 2025-06-30 23:52:17
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("t_customer")
public class Customer extends Model<Customer> {

    // 主键
    @TableId(value = "customer_id", type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 客户名称
     */
    @ExcelProperty("客户名称")
    private String customerName;
    /**
     * 客户编码
     */
    @ExcelProperty("客户编码")
    private String customerCode;
    /**
     * 父客户编码
     */
    @ExcelProperty("父客户编码")
    private String parentCustomerCode;
    /**
     * 父客户名称
     */
    @ExcelProperty("父客户名称")
    private String parentCustomerName;
    /**
     * 组织等级(1一级，2二级，3三级)
     */
    @ExcelProperty("组织等级(1一级，2二级，3三级)")
    private Integer orgLevel;
    /**
     * 客户类型
     */
    @ExcelProperty("客户类型")
    private String customerType;
    /**
     * 客户种类
     */
    @ExcelProperty("客户种类")
    private String customerLabel;
    /**
     * 省
     */
    @ExcelProperty("省")
    private String province;
    /**
     * 市
     */
    @ExcelProperty("市")
    private String city;
    /**
     * 区县
     */
    @ExcelProperty("区县")
    private String district;
    /**
     * 联系地址
     */
    @ExcelProperty("联系地址")
    private String address;
    /**
     * 客户来源
     */
    @ExcelProperty("客户来源")
    private String source;
    /**
     * 法人姓名
     */
    @ExcelProperty("法人姓名")
    private String legalName;
    /**
     * 法人电话
     */
    @ExcelProperty("法人电话")
    private String legalPhone;
    /**
     * 联系人姓名
     */
    @ExcelProperty("联系人姓名")
    private String linkMan;
    /**
     * 联系电话
     */
    @ExcelProperty("联系电话")
    private String linkPhone;
    /**
     * 联系人职务
     */
    @ExcelProperty("联系人职务")
    private String linkJob;
    /**
     * 补充地址
     */
    @ExcelProperty("补充地址")
    private String otherAddress;
    /**
     * 经度
     */
    @ExcelProperty("经度")
    private Double lng;
    /**
     * 纬度
     */
    @ExcelProperty("纬度")
    private Double lat;
    /**
     * 创建时间
     */
    @ExcelProperty("创建时间")
    private Date createTime;
    /**
     * 修改时间
     */
    @ExcelProperty("修改时间")
    private Date updateTime;
    /**
     * 创建人
     */
    @ExcelProperty("创建人")
    private String createBy;
    /**
     * 修改人
     */
    @ExcelProperty("修改人")
    private String updateBy;
    /**
     * 销售渠道
     */
    @ExcelProperty("销售渠道")
    private String saleChannel;
    /**
     * 人数
     */
    @ExcelProperty("人数")
    private Integer peopleNumber;
    /**
     * 注册时间
     */
    @ExcelProperty("注册时间")
    private Date regTime;
    /**
     * 注册资金
     */
    @ExcelProperty("注册资金")
    private String regFund;
    /**
     * 行业标签
     */
    @ExcelProperty("行业标签")
    private String industryLabel;
    /**
     * 客户类型标签
     */
    @ExcelProperty("客户类型标签")
    private String typeLabel;
    /**
     * 价值标签
     */
    @ExcelProperty("价值标签")
    private String valueLabel;
    /**
     * 需求点标签
     */
    @ExcelProperty("需求点标签")
    private String demandLabel;
    /**
     * 付款(结算)方式(1预存，2授信)
     */
    @ExcelProperty("付款(结算)方式(1预存，2授信)")
    private String payWay;
    /**
     * 是否开票
     */
    @ExcelProperty("是否开票")
    private String invoicing;
    /**
     * 组织类型(1公司，2部门)
     */
    @ExcelProperty("组织类型(1公司，2部门)")
    private String orgType;
    /**
     * 开票名头id
     */
    @ExcelProperty("开票名头id")
    private Integer invoiceId;
    /**
     * 报价附加类型(1单价,2金额)
     */
    @ExcelProperty("报价附加类型(1单价,2金额)")
    private Integer attachType;
    /**
     * 报价附加符号
     */
    @ExcelProperty("报价附加符号")
    private String attachSymbol;
    /**
     * 报价附加值
     */
    @ExcelProperty("报价附加值")
    private String attachValue;
    /**
     * 报价附方式
     */
    @ExcelProperty("报价附方式")
    private Integer attachWay;
    /**
     * 预存账号
     */
    @ExcelProperty("预存账号")
    private String ycaccount;
    /**
     * 授信账号
     */
    @ExcelProperty("授信账号")
    private String sxaccount;
    /**
     * 现金账号
     */
    @ExcelProperty("现金账号")
    private String xjaccount;
    /**
     * 预付比例
     */
    @ExcelProperty("预付比例")
    private Integer payScale;

    /**
     * 删除标志
     */
    @TableLogic
    private Boolean delFlag;
}
